#include "rating_table.h"
#include "ui_rating_table.h"
#include <QDebug>
#include <qfiledialog.h>
#include <QTextCodec>
rating_table::rating_table(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::rating_table)
{
    ui->setupUi(this);
    //comb=new QComboBox;
    ui->rate_table->setRowCount(1);//создаем одну строку
    ui->rate_table->setColumnCount(6);//и шесть столбцов
    ui->rate_table->setColumnWidth(0,200);// столбец под фамилию - 200пикс
    ui->rate_table->setHorizontalHeaderItem(0,new QTableWidgetItem("ФИО"));//обзываем столбцы
    ui->rate_table->setHorizontalHeaderItem(1,new QTableWidgetItem("ИТ"));
    ui->rate_table->setHorizontalHeaderItem(2,new QTableWidgetItem("РЦиС"));
    ui->rate_table->setHorizontalHeaderItem(3,new QTableWidgetItem("ФК"));
    ui->rate_table->setHorizontalHeaderItem(4,new QTableWidgetItem("ЭФОЭ"));
    ui->rate_table->setHorizontalHeaderItem(5,new QTableWidgetItem("Математика"));//обозвали
    ui->rate_table->setItem(0, 0,new QTableWidgetItem("soberNT"));

}

rating_table::~rating_table()
{
    delete ui;
}




void rating_table::on_PlusButton_clicked()
{
   int  qrt=ui->rate_table->rowCount();
   qDebug()<<qrt;
    ui->rate_table->setRowCount(qrt+1);
    qDebug()<<qrt;
}



void rating_table::on_rate_table_doubleClicked(const QModelIndex &index)
{
    ui->line->setText("<не выбрано>");
    column_a=index.column();//смотрим номер кликнутого столбца
    row_a=index.row();// и строку
    if(column_a!=0){//если это не столбец для фамилии
    comb=new QComboBox;//создадим комбобокс
    comb->addItem("<не выбрано>",0);
    comb->addItem("Н/А",1);
    comb->addItem("Неуд",2);
    comb->addItem("Удовл",3);
    comb->addItem("Хор",4);
    comb->addItem("Отл",5);//забьем варианты для редактирования
    //QTableWidget *table=ui->rate_table;
    ui->rate_table->setCellWidget(row_a, column_a, comb);//и засунем его в яйчейку по строке и столбцу
    connect(comb,SIGNAL(currentIndexChanged(QString)),ui->line,SLOT(setText(QString)));//засунем то,что выбрали в qlinedit



    }
}




void rating_table::on_line_textChanged(const QString &arg1)
{
    if (arg1!="<не выбрано>"){
   ui->rate_table->setItem(row_a, column_a,new QTableWidgetItem(arg1));
    delete comb;
    }
}

void rating_table::on_pushButton_clicked()
{
    QString fileName_DATA = QFileDialog::getOpenFileName(this, tr("Open File"),"c:/",tr("txt (*.txt)"));
        QFile file(fileName_DATA);
        if (file.open(QIODevice::ReadOnly | QIODevice::Text))
        {
           QTextStream stream(&file);
           QStringList filestrings=stream.readAll().split('\n');
           int n = filestrings.count();
           ui->rate_table->setRowCount(n-1);

        for(int i=0;i<=n-1;i++){
          QString linestring=filestrings.at(i);;
          qDebug()<<linestring;
          QStringList argline =linestring.split(";");
          for (int j = 0; j <= argline.count()-1; ++j)
          {

                 ui->rate_table->setItem(i, j,new QTableWidgetItem(argline.at(j)));
        }
        }
        }

}

void rating_table::on_save_clicked()
{
 QString filedata("");
 QString fileName_DATA = QFileDialog::getSaveFileName(this, tr("Save File"),"c:/",tr("txt (*.txt)"));
 for(int i=0;i<=ui->rate_table->rowCount()-1;i++){

      for(int j=0;j<=ui->rate_table->columnCount()-1;j++){
          QString mydata=ui->rate_table->item ( i, j )->text();
          if(mydata==""){mydata="<Не выбрано>";}
          filedata+=mydata.replace("\n", "")+";";
        }
      filedata.append("\n");
      qDebug()<<"nocrash";
 }
 QFile file(fileName_DATA+".txt");
 file.open(QIODevice::ReadWrite| QIODevice::Text);
 QTextStream stream(&file);
 stream << filedata;
  file.close();

}
